package com.itheima.service.impl;

import com.itheima.anno.Log;
import com.itheima.mapper.DeptMapper;
import com.itheima.pojo.Dept;
import com.itheima.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.time.LocalDateTime;
import java.util.List;

// ctrl + alt + o: 删除多余没用的导入的类
@Service
public class DeptServiceImpl implements DeptService {

    @Autowired
    private DeptMapper deptMapper;

    /**
     * 业务层处理业务逻辑
     * @return 返回处理好的数据
     * @throws IOException
     */
    public List<Dept> list() throws IOException {
        // 业务层, 调用DAO方法获取数据
        // int a = 10 / 0;
        List<Dept> deptList = deptMapper.findAll();

        return deptList;
    }

    /**
     * 根据id删除部门
     * @param id
     * @return
     */
    @Override
    public int delete(Integer id) {
        // 调用Mapper根据id删除部门
        int row = deptMapper.delete(id);

        return row;
    }

    /**
     * 添加部门
     * @param dept
     * @return
     */
    @Override
    public int add(Dept dept) {
        // 补充基础属性
        dept.setCreateTime(LocalDateTime.now());
        dept.setUpdateTime(LocalDateTime.now());

        // 调用Mapper添加部门
        int row = deptMapper.add(dept);

        // 返回数据
        return row;
    }

    /**
     * 修改部门-根据id查询部门
     * @param id
     * @return
     */
    @Override
    public Dept getById(Integer id) {
        // 调用Mapper根据id查询部门
        Dept dept = deptMapper.getById(id);

        // 返回查询的部门数据
        return dept;
    }

    /**
     * 根据id修改部门
     * @param dept
     * @return
     */
    @Override
    public int update(Dept dept) {
        // 设置修改的时间
        dept.setUpdateTime(LocalDateTime.now());

        // 调用Mapper根据id修改部门
        int row = deptMapper.update(dept);

        // 返回数据
        return row;
    }
}
